package com.employment.service;

import com.employment.entity.ChatTemplate;

import java.util.List;

/**
 * 常用回复模板服务接口
 * 
 * @author employment
 * @since 2024-01-01
 */
public interface ChatTemplateService {
    
    /**
     * 创建常用回复模板
     * 
     * @param userId 用户ID
     * @param title 模板标题
     * @param content 模板内容
     * @param category 模板分类
     * @return 创建的模板
     */
    ChatTemplate createTemplate(Long userId, String title, String content, String category);
    
    /**
     * 更新常用回复模板
     * 
     * @param templateId 模板ID
     * @param userId 用户ID
     * @param title 模板标题
     * @param content 模板内容
     * @param category 模板分类
     * @return 更新后的模板
     */
    ChatTemplate updateTemplate(Long templateId, Long userId, String title, String content, String category);
    
    /**
     * 删除常用回复模板
     * 
     * @param templateId 模板ID
     * @param userId 用户ID
     */
    void deleteTemplate(Long templateId, Long userId);
    
    /**
     * 获取用户的常用回复模板列表
     * 
     * @param userId 用户ID
     * @param category 模板分类（可选）
     * @return 模板列表
     */
    List<ChatTemplate> getUserTemplates(Long userId, String category);
    
    /**
     * 根据关键词搜索模板
     * 
     * @param userId 用户ID
     * @param keyword 关键词
     * @return 模板列表
     */
    List<ChatTemplate> searchTemplates(Long userId, String keyword);
    
    /**
     * 增加模板使用次数
     * 
     * @param templateId 模板ID
     * @param userId 用户ID
     */
    void incrementUsageCount(Long templateId, Long userId);
    
    /**
     * 获取常用模板（按使用次数排序）
     * 
     * @param userId 用户ID
     * @param limit 限制数量
     * @return 模板列表
     */
    List<ChatTemplate> getFrequentlyUsedTemplates(Long userId, Integer limit);
}